<?php

class Despesa_InsereController extends Zend_Controller_ActionAquiles {

    public function init() {
        parent::init();
        $this->view->title = 'Adição de Despesa.';
    }
    
    public function indexAction() {
        $this->view->form = new Application_Form_Despesa_Insere();
    }

    public function validaAction() {
        $resp = new Util_Function_JsonResponse();
        $form = new Application_Form_Despesa_Insere();
        $form->setDefaults($this->_request->getPost());

        $nome = $form->descricao->getValue();
        if (!isset($nome)) {
            $resp->addErro(utf8_encode("A 'Descrição' é obrigatória."));
        }
        
        $dtVencimento = $form->dt_vencimento->getValue();
        if (!isset($dtVencimento)) {
            $resp->addErro(utf8_encode("A 'Data de Vencimento' é obrigatória."));
        }
        
        $dtPag = $form->dt_pagamento->getValue();
        if (!isset($dtPag)) {
            $resp->addErro(utf8_encode("A 'Data de Pagamento' é obrigatória."));
        }
        
        $tpDespesa = $form->tipo_despesa->getValue();
        if (!isset($tpDespesa)) {
            $resp->addErro(utf8_encode("O 'Tipo de Despesa' é obrigatório."));
        }

        echo Zend_Json::encode(array("erros" => $resp->getErros()), Zend_Json::TYPE_OBJECT);
        die();
    }

    public function novoAction() {
        $codigo = $this->_request->getParam('codigo');
        $form = new Application_Form_Despesa_Insere($codigo);
        $model = Application_Model_Despesa::getInstance();
        $form->setDefaults($this->_request->getPost());
        
        $session = new Zend_Session_Namespace('msg');
        
        if(isset($codigo)){
            $model->update($form->getValues());
            $msg['msg1'] = 'Despesa modificado com sucesso.';
        }else{
            $model->insert($form->getValues());
            $msg['msg1'] = 'Despesa adicionado com sucesso.';
        }
        
        $session->msgs =$msg;
        $this->_helper->redirector('index','consulta','despesa');
    }

    
    public function deleteAction() {
        $codigo = $this->_request->getParam('codigo');
        if(is_numeric($codigo)){
            $model = Application_Model_Despesa::getInstance();
            $model->remove($codigo);
            $msg['msg1'] = 'Despesa excluído com sucesso.';
            $session = new Zend_Session_Namespace('msg');
            $session->msgs =$msg;
        }else{
            $msg['delete1'] = 'Não foi possível excluir o a Despesa.';
            $session = new Zend_Session_Namespace('erros');
            $session->erros =$msg;
        }
        
        $this->_helper->redirector('index','consulta','despesa');
    }

}